1. Field of the Invention
The present invention relates to a Hot Plug controller, and specifically to a Hot Plug controller that provides Hot Plug capability to an expansion slot on a PCI bus without an associated load on the PCI bus.
2. Description of the Related Art
A peripheral component interconnect (PCI) bus is an industry standardized expansion bus that conveys much of the information and signals of a computer system. In light of the miniaturization of computer systems, leading to notebooks and palm computers, expansion cards were created to provide memory space and/or input/output devices to expand the systems"" functionality. The term xe2x80x9cPCI Hot Plugxe2x80x9d refers to the process of inserting, removing, or replacing the PCI expansion cards in a computer system without having to turn off the system.
The logic necessary to implement the PCI Hot Plug includes a Hot Plug controller in addition to a number of discrete components. These components typically include bus switches for isolating the expansion cards from the PCI bus, a power controller and associated field effect transistors (FETs) for controlling the power supply to the expansion cards, and light emitting diodes (LEDs) for indicating the state of the expansion cards. One of the functions of the Hot Plug controller is to monitor and control the activity of the PCI bus during the insertion, removal, or replacement of an expansion card.
FIG. 1 illustrates a typical Hot Plug bus system 100 including a PCI bus 104, two expansion cards 102A and 102B connected to PCI bus 104 via slots 103A and 103B, respectively, and a Hot Plug controller 101 coupled to slots 103 as well as to PCI bus 104 via a bus 108.
Hot Plug controller 101 controls a number of critical operations associated with slots 103A and 103B via connectors 105A and 105B, respectively. Specifically, in each set of connectors 105, one connector controls power and the other connector controls PCI bus signals. Thus, by using connectors 105A for example, Hot Plug controller 101 can control the power and PCI bus signals for slot 103A and associated expansion card 102A. Connectors 105 typically include bus switches (i.e., transfer gates) implemented by FETs. When a FET is turned on, it functions similar to a 5 Ohm resistor. However, when a FET is turned off, it functions similar to a 1 MOhm resistor.
In this manner, Hot Plug controller 101 can isolate an individual slot 103 (and hence its associated expansion card 102) from PCI bus 104 and can power down each card 102 during insertion, removal, or replacement. Moreover, Hot Plug controller 101 provides the power-up and power-down sequences for expansion cards 102 to meet the electrical requirements of PCI bus 104. Hot Plug controller 101 also provides additional signals to expansion cards 102. Although only the reset signal PRST is shown, other signals well known to those in the art are also provided. Exemplary signals are described in detail in xe2x80x9cPCI Hot-Plug Application and Designxe2x80x9d, by Alan Goodrum, pages 31-37, published by Annabooks in 1998, and incorporated by reference herein. Finally, Hot Plug controller 101 generates a state indicator 106 (indicating slot power on or slot power off) as well as an attention indicator 107 (providing a predetermined color or flashing light) to draw a user""s attention to a particular slot 103 (indicating card inserted or swap ready).
Note that Hot Plug controller 101 is controlled by software (not described in detail herein, but well known to those skilled in the art). In this manner, a user can provide requests to a standard peripheral device of a computer system, such as a keyboard, and the corresponding request is translated into software, which is then provided to Hot Plug controller 101.
The PCI Hot Plug specification supports three different types of operations: Hot Add, Hot Remove/Delete, and Hot Swap. In a typical computer system, to provide the above-described operations, Hot Plug controller 101 monitors PCI bus 104. A typical Hot Plug controller 101 monitors these signals directly via bus 108, thereby providing an electrical load on PCI bus 104.
The PCI bus specification defines ten (10) electrical loads as a maximum limit when PCI bus 104 operates at 33 MHz and five (5) loads at 66 MHz. Each slot 103 is counted as two loads (a first load for expansion card 102 and a second load for connectors 105). Moreover, in a typical PCI bus, at least one master (explained in detail below) is connected to PCI bus 104. Thus, at 66 MHz, system 100 cannot provide Hot Plug capability because the maximum number of loads would be exceeded. Because the electrical loads on a PCI bus are at a premium, a need arises for a system and method to decrease the number of loads on the bus, thereby allowing Hot Plug capability at maximum speed and increasing system functionality.
In accordance with the present invention, a Hot Plug system includes a PCI bus, an expansion card, a slot for receiving the expansion card, and a Hot Plug controller directly connected to the expansion card and the slot, but only indirectly connected to the PCI bus.
The present invention uses an enhanced arbiter to monitor and control the PCI bus on behalf of the Hot Plug controller, thereby allowing the Hot Plug controller to be disconnected from the PCI bus and reducing a critical load on the PCI bus. Because the Hot Plug controller no longer needs to perform monitoring and controlling functions on the PCI bus, the logic within the Hot Plug controller can be significantly simplified. However, the Hot Plug controller of the present invention still maintains direct control over the expansion slots and associated expansion cards. In one embodiment, the enhanced arbiter with Hot Plug capability is implemented with a bridge on a chipset.